﻿using ThirdServices.AlertModel.Factory.BaseInterface;

namespace ThirdServices.AlertModel.Factory
{
    public interface AlertBaseFactory
    {
        /// <summary>
        /// Creates a new alert
        /// </summary>
        /// <param name="alert">Alerts type enum member</param>
        /// <returns>Created alert</returns>
        IAlert CreateAlert(AlertTypes alert);

        IAlert CreateGlobalAlert(double lat, double lon, double radius);
        IAlert CreateTemperatureAlert(double lat, double lon, double percentage, int periodInDays);
        IAlert CreateWindAlert(double lat, double lon, double radius);
        IAlert CreatePressureAlert(double lat, double lon, double delta, double radius);
        IAlert CreateFogAlert(double lat, double lon, double delta, double radius);
        IAlert CreateHumidityAlert(double lat, double lon, double delta, double radius);
        IAlert CreateEarthquakeAlert(int pointsMax, double latMax, double latMin, double lonMax, double lonMin);
    }
}